
package com.jf.cloud.multishop.mapper;

import com.jf.cloud.multishop.model.ShopCompany;
import com.jf.cloud.multishop.vo.ShopCompanyVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zz
 * @Date 2021/4/25 15:52
 */
public interface ShopCompanyMapper {
    /**
     * 根据店铺id获取店铺工商信息
     * @param shopId
     * @return
     */
    ShopCompanyVO getShopCompanyByShopIdAndStatus(@Param("shopId") Long shopId, @Param("status") Integer status);

    /**
     * 获取店铺工商信息列表
     * @return 店铺工商信息列表
     */
    List<ShopCompany> list();

    /**
     * 根据店铺工商信息id获取店铺工商信息
     *
     * @param shopCompanyId 店铺工商信息id
     * @return 店铺工商信息
     */
    ShopCompany getByShopCompanyId(@Param("shopCompanyId") Long shopCompanyId);

    /**
     * 保存店铺工商信息
     * @param shopCompany 店铺工商信息
     */
    void save(@Param("shopCompany") ShopCompany shopCompany);

    /**
     * 更新店铺工商信息
     * @param shopCompany 店铺工商信息
     */
    void update(@Param("shopCompany") ShopCompany shopCompany);

    /**
     * 根据店铺工商信息id删除店铺工商信息
     * @param shopCompanyId
     */
    void deleteById(@Param("shopCompanyId") Long shopCompanyId);

    /**
     * 根据店铺id更新店铺工商信息
     * @param shopCompany
     * @param shopId
     * @param temp 0代表通过审核，1代表平台修改
     */
    void updateByShopId(@Param("shopCompany") ShopCompany shopCompany, @Param("shopId") Long shopId, @Param("temp") Integer temp);

    /**
     * 根据店铺id更改店铺工商信息状态
     * @param shopId
     * @param status
     */
    void batchUpdateStatus(@Param("shopId") Long shopId, @Param("status") Integer status);

    /**
     * 统计企业名称被其他店铺使用的次数
     * @param firmName
     * @param shopId
     * @return
     */
    int countByFirmNameNonShopId(@Param("firmName") String firmName, @Param("shopId") Long shopId);

    /**
     * 根据信用编码查询对应的店铺Id
     * @param creditCode
     */
    Long getShopIdByCreditCode(@Param("creditCode") String creditCode);
    /**
     * 根据店铺id和审核状态删除店铺工商信息
     * @param shopId
     * @param status 审核状态
     * @return
     */
    void deleteByShopIdAndStatus(@Param("shopId") Long shopId, @Param("status") Integer status);

    /**
     * 查询店铺最近创建的工商信息状态
     * @param shopId
     * @return
     */
    Integer getLatestRecord(Long shopId);

    /**
     * 根据店铺id更新店铺工商信息
     * @param shopCompany 店铺工商信息
     */
    void updateById(@Param("shopCompany") ShopCompany shopCompany);
}
